#include<iostream>
#include<cstring>

using namespace std ;

const int maxn = 200003 ;   //maxn的值比要求的最大值大两到三倍  并且是质数
const int null = 0x3f3f3f3f ;   //设置成为一个不可能取到的地址 ， 表示null

int h[maxn] ;   //只需要一个一维数组

/**
* 最重要的操作就是一个find函数 ， 不需要 insert 因为这个函数
 * 当找到了的时候他返回的是该数的下标
 * 没找到的时候他返回的是这个数应该插入的位置
*/

int find(int x) {
    int k = (x % maxn + maxn ) %maxn ;

    while(h[k] != null && h[k] != x) {  //如果这个位置上有人并且不等于 x
        k ++ ;
        if(k == maxn ) {
            //指针走到尾了后再返回来
            k = 0 ;
        }
    }

    return k ;
}

int main() {

    memset(h , 0x3f , sizeof h) ;

    int n ;
    scanf("%d" , &n) ;
    while(n --) {
        char op[2];
        int x ;
        scanf("%s%d" , op , &x) ;
        int k = find(x) ;
        if(op[0] == 'I') {
            h[k] = x ;
        } else {
            if(h[k] != null) {
                puts("Yes");
            }else {
                puts("No");
            }
        }
    }
    return 0 ;
}